<!DOCTYPE html>
<html lang=en>
<head>
    <!-- so meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="HandheldFriendly" content="True">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="description" content="**** 不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR函数和LIKE操作符实现。 SELECT *FROM mytext WHERE INSTR (thetext, ‘Oracle’) &gt; 0; SELECT * FROM mytext WHERE thetext LIKE ‘%Oracle%’; 有很多时候，使用instr和li">
<meta property="og:type" content="article">
<meta property="og:title" content="如何更好的使用Oracle全文索引-Tracy.-博客园">
<meta property="og:url" content="http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/index.html">
<meta property="og:site_name" content="TmoonSite">
<meta property="og:description" content="**** 不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR函数和LIKE操作符实现。 SELECT *FROM mytext WHERE INSTR (thetext, ‘Oracle’) &gt; 0; SELECT * FROM mytext WHERE thetext LIKE ‘%Oracle%’; 有很多时候，使用instr和li">
<meta property="og:locale" content="en_US">
<meta property="article:published_time" content="2016-01-15T13:03:21.000Z">
<meta property="article:modified_time" content="2020-01-07T10:48:14.920Z">
<meta property="article:author" content="Tmoonlight">
<meta name="twitter:card" content="summary">
    
    
        
          
              <link rel="shortcut icon" href="/images/favicon.ico">
          
        
        
          
            <link rel="icon" type="image/png" href="/images/logo2.gif" sizes="192x192">
          
        
        
          
            <link rel="apple-touch-icon" sizes="180x180" href="/images/logo2.gif">
          
        
    
    <!-- title -->
    <title>如何更好的使用Oracle全文索引-Tracy.-博客园</title>
    <!-- styles -->
    
<link rel="stylesheet" href="/css/style.css">

    <!-- persian styles -->
    
      
<link rel="stylesheet" href="/css/rtl.css">

    
    <!-- rss -->
    
    
<meta name="generator" content="Hexo 4.2.0"></head>

<body class="max-width mx-auto px3 ltr">
    
      <div id="header-post">
  <a id="menu-icon" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="menu-icon-tablet" href="#"><i class="fas fa-bars fa-lg"></i></a>
  <a id="top-icon-tablet" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');" style="display:none;"><i class="fas fa-chevron-up fa-lg"></i></a>
  <span id="menu">
    <span id="nav">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </span>
    <br/>
    <span id="actions">
      <ul>
        
        <li><a class="icon" href="/2016/01/16/C++%E9%97%AE%E9%A2%98%E8%AE%B0%E5%BD%95/"><i class="fas fa-chevron-left" aria-hidden="true" onmouseover="$('#i-prev').toggle();" onmouseout="$('#i-prev').toggle();"></i></a></li>
        
        
        <li><a class="icon" href="/2016/01/10/csc%E7%B3%BB%E7%BB%9F%E5%A4%87%E5%BF%98/"><i class="fas fa-chevron-right" aria-hidden="true" onmouseover="$('#i-next').toggle();" onmouseout="$('#i-next').toggle();"></i></a></li>
        
        <li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
        <li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
      </ul>
      <span id="i-prev" class="info" style="display:none;">Previous post</span>
      <span id="i-next" class="info" style="display:none;">Next post</span>
      <span id="i-top" class="info" style="display:none;">Back to top</span>
      <span id="i-share" class="info" style="display:none;">Share post</span>
    </span>
    <br/>
    <div id="share" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/" target="_blank" rel="noopener"><i class="fab fa-facebook " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&text=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-twitter " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-linkedin " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&is_video=false&description=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-pinterest " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=如何更好的使用Oracle全文索引-Tracy.-博客园&body=Check out this article: http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/"><i class="fas fa-envelope " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-get-pocket " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-reddit " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-stumbleupon " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-digg " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&name=如何更好的使用Oracle全文索引-Tracy.-博客园&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr " aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&t=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-hacker-news " aria-hidden="true"></i></a></li>
</ul>

    </div>
    <div id="toc">
      
    </div>
  </span>
</div>

    
    <div class="content index py4">
        
        <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
  <header>
    
    <h1 class="posttitle" itemprop="name headline">
        如何更好的使用Oracle全文索引-Tracy.-博客园
    </h1>



    <div class="meta">
      <span class="author" itemprop="author" itemscope itemtype="http://schema.org/Person">
        <span itemprop="name">TmoonSite</span>
      </span>
      
    <div class="postdate">
      
        <time datetime="2016-01-15T13:03:21.000Z" itemprop="datePublished">2016-01-15</time>
        
      
    </div>


      

      

    </div>
  </header>
  

  <div class="content" itemprop="articleBody">
    <p>**<br>**</p>
<p>不使用Oracle text功能,也有很多方法可以在Oracle数据库中搜索文本.可以使用标准的INSTR函数和LIKE操作符实现。</p>
<p>SELECT *FROM mytext WHERE INSTR (thetext, ‘Oracle’) &gt; 0;</p>
<p>SELECT * FROM mytext WHERE thetext LIKE ‘%Oracle%’;</p>
<p>有很多时候，使用instr和like是很理想的, 特别是搜索仅跨越很小的表的时候.然而通过这些文本定位的方法将导致全表扫描,对资源来说消耗比较昂贵,而且实现的搜索功能也非常有限，因此对海量的文本数据进行搜索时，建议使用oralce提供的全文检索功能 建立全文检索的步骤步骤一 检查和设置数据库角色首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。如果没有这个用户和角色，意味着你的数据库创建时未安装intermedia功能。你必须修改数据库以安装这项功能。 默认安装情况下，ctxsys用户是被锁定的，因此要先启用ctxsys的用户。 步骤二 赋权 在ctxsys用户下把ctx_ddl的执行权限赋于要使用全文索引的用户，例：</p>
<p>grant execute on ctx_ddl to pomoho;  </p>
<p>步骤三 设置词法分析器(lexer)</p>
<p>Oracle实现全文检索，其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle 称为 term)找出来，记录在一组 以dr$开头的表中，同时记下该term出现的位置、次数、hash 值等信息。检索时，Oracle 从这组表中查找相应的term，并计算其出现频率，根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是该机制的核心，它决定了全文检索的效率。Oracle 针对不同的语言提供了不同的 lexer, 而我们通常能用到其中的三个：</p>
<p>n  basic_lexer: 针对英语。它能根据空格和标点来将英语单词从句子中分离，还能自动将一些出现频率过高已经失去检索意义的单词作为‘垃圾’处理，如if , is 等，具有较高的处理效率。但该lexer应用于汉语则有很多问题，由于它只认空格和标点，而汉语的一句话中通常不会有空格，因此，它会把整句话作为一个 term,事实上失去检索能力。以‘中国人民站起来了’这句话为例，basic_lexer 分析的结果只有一个term ,就是‘中国人民站起来了’。此时若检索‘中国’，将检索不到内容。</p>
<p>n  chinese_vgram_lexer: 专门的汉语分析器，支持所有汉字字符集(ZHS16CGB231280 ZHS16GBK ZHT32EUC ZHT16BIG5 ZHT32TRIS ZHT16MSWIN950 ZHT16HKSCS UTF8 )。该分析器按字为单元来分析汉语句子。‘中国人民站起来了’这句话，会被它分析成如下几个term: ‘中’，‘中国’，‘国人’，‘人民’，‘民站’，‘站起’，起来’，‘来了’，‘了’。可以看出，这种分析方法，实现算法很简单，并且能实现‘一网打尽’，但效率则是差强人意。</p>
<p>n  chinese_lexer: 这是一个新的汉语分析器，只支持utf8字符集。上面已经看到，chinese vgram lexer这个分析器由于不认识常用的汉语词汇，因此分析的单元非常机械，像上面的‘民站’，‘站起’在汉语中根本不会单独出现，因此这种term是没有意义的，反而影响效率。chinese_lexer的最大改进就是该分析器 能认识大部分常用汉语词汇，因此能更有效率地分析句子，像以上两个愚蠢的单元将不会再出现，极大 提高了效率。但是它只支持 utf8, 如果你的数据库是zhs16gbk字符集，则只能使用笨笨的那个Chinese vgram lexer.</p>
<p>如果不做任何设置，Oracle 缺省使用basic_lexer这个分析器。要指定使用哪一个lexer, 可以这样操作：</p>
<p>第一． 当前用户下下建立一个preference(例：在pomoho用户下执行以下语句)</p>
<p>exec ctx_ddl.create_preference (‘my_lexer’, ‘chinese_vgram_lexer’);</p>
<p>第二．   在建立全文索引索引时，指明所用的lexer:</p>
<p>CREATE INDEX myindex ON mytable(mycolumn) indextype is ctxsys.context</p>
<p>parameters(‘lexer my_lexer’);</p>
<p>这样建立的全文检索索引，就会使用chinese_vgram_lexer作为分析器。</p>
<p>步骤四 建立索引</p>
<p>通过以下语法建立全文索引</p>
<p>CREATE INDEX [schema.]index on [schema.]table(column) INDEXTYPE IS ctxsys.context [ONLINE]</p>
<p>LOCAL [(PARTITION [partition] [PARAMETERS(‘paramstring’)]</p>
<p>[, PARTITION [partition] [PARAMETERS(‘paramstring’)]])]</p>
<p>[PARAMETERS(paramstring)] [PARALLEL n] [UNUSABLE];</p>
<p>例：  </p>
<p>CREATE INDEX ctx_idx_menuname ON pubmenu(menuname)</p>
<p>indextype is ctxsys.context parameters(‘lexer my_lexer’)</p>
<p>步骤五 使用索引</p>
<p>使用全文索引很简单，可以通过：</p>
<p>select * from pubmenu where contains(menuname,’上传图片’)&gt;0</p>
<p>全文索引的种类</p>
<p>建立的Oracle Text索引被称为域索引(domain index)，包括4种索引类型：</p>
<p>l CONTEXT</p>
<p>2 CTXCAT</p>
<p>3 CTXRULE</p>
<p>4 CTXXPATH</p>
<p>依据你的应用程序和文本数据类型你可以任意选择一种。</p>
<p> <strong>对多字段建立全文索引</strong></p>
<p>很多时候需要从多个文本字段中查询满足条件的记录，这时就需要建立针对多个字段的全文索引，例如需要从pmhsubjects(专题表)的 subjectname(专题名称)和briefintro(简介)上进行全文检索，则需要按以下步骤进行操作：</p>
<p>Ø  建议多字段索引的preference</p>
<p>以ctxsys登录，并执行：</p>
<p>EXEC ctx_ddl.create_preference(‘ ctx_idx_subject_pref’,</p>
<p>‘MULTI_COLUMN_DATASTORE’);</p>
<p>Ø 建立preference对应的字段值(以ctxsys登录)</p>
<p>EXEC ctx_ddl.set_attribute(‘ ctx_idx_subject_pref ‘,’columns’,’subjectname,briefintro’);</p>
<p>Ø 建立全文索引</p>
<p>CREATE INDEX ctx_idx_subject ON pmhsubjects(subjectname)</p>
<p>INDEXTYPE ISctxsys.CONTEXT PARAMETERS(‘DATASTORE ctxsys.ctx_idx_subject_pref lexer my_lexer’)</p>
<p>Ø 使用索引  </p>
<ul>
<li>from pmhsubjects where contains(subjectname,’李宇春’)&gt;0  </li>
</ul>
<p>select</p>
<p> <strong>全文索引的维护</strong></p>
<p>对于CTXSYS.CONTEXT索引，当应用程序对基表进行DML操作后，对基表的索引维护是必须的。索引维护包括索引同步和索引优化。</p>
<p>在索引建好后，我们可以在该用户下查到Oracle自动产生了以下几个表：(假设索引名为myindex)：</p>
<p>DR$myindex$I、DR$myindex$K、DR$myindex$R、DR$myindex$N其中以I表最重要，可以查询一下该表，看看有什么内容：</p>
<p>SELECT token_text, token_count FROM dr$i_rsk1$I WHERE ROWNUM &lt;= 20;  </p>
<p>这里就不列出查询接过了。可以看到，该表中保存的其实就是Oracle 分析你的文档后，生成的term记录在这里，包括term出现的位置、次数、hash值等。当文档的内容改变后，可以想见这个I表的内容也应该相应改变，才能保证Oracle在做全文检索时正确检索到内容(因为所谓全文检索，其实核心就是查询这个表)。这就用到sync(同步) 和 optimize(优化)了。</p>
<p> <strong>同步(sync):</strong> 将新的term 保存到I表；</p>
<p> <strong>优化(optimize):</strong> 清除I表的垃圾，主要是将已经被删除的term从I表删除。</p>
<p>当基表中的被索引文档发生insert、update、delete操作的时候，基表的改变并不能马上影响到索引上直到同步索引。可以查询视图 CTX_USER_PENDING查看相应的改动。例如：</p>
<p>SELECT pnd_index_name, pnd_rowid,</p>
<p>TO_CHAR (pnd_timestamp, ‘dd-mon-yyyy hh24:mi:ss’) timestamp</p>
<p>FROM ctx_user_pending;  </p>
<p>该语句的输出类似如下：</p>
<p>PND_INDEX_NAME                PND_ROWID          TIMESTAMP</p>
<p>-—————————– —————— ——————–</p>
<p>MYINDEX                        AAADXnAABAAAS3SAAC 06-oct-1999 15:56:50</p>
<p> <strong>同步和优化方法: 可以使用Oracle提供的ctx_ddl包同步和优化索引</strong></p>
<p>一.  对于CTXCAT类型的索引来说， 当对基表进行DML操作的时候，Oracle自动维护索引。对文档的改变马上反映到索引中。CTXCAT是事务形的索引。</p>
<p> <strong>索引的同步</strong></p>
<p>在对基表插入，修改，删除之后同步索引。推荐使用sync同步索引。语法：</p>
<p>ctx_ddl.sync_index(</p>
<p>idx_name IN VARCHAR2 DEFAULT NULL</p>
<p>memory IN VARCHAR2 DEFAULT NULL,  </p>
<p>L<br>parallel_degree IN NUMBER DEFAUL</p>
<p>part_name IN VARCHAR2 DEFAULT NU</p>
<p>LT 1);<br>idx_name  索引名称  </p>
<p>是系统参数DEFAULT_INDEX_MEMORY 。  </p>
<p>memory    指定同步索引需要的内存。默</p>
<p>认  </p>
<p>指定一个大的内存时候可以加快索引效率和查询速度，且索引有较少的碎片</p>
<p>part_name 同步哪个分区索引。</p>
<p>parallel_degree 并行同步索引。设置并行度。</p>
<p>例如：</p>
<p>同步索引myindex:Exec   ctx_ddl.sync_index (‘myindex’);</p>
<p>实施建议：建议通过oracle的job对索引进行同步</p>
<p> <strong>索引的优化</strong></p>
<p>经常的索引同步将会导致你的CONTEXT索引产生碎片。索引碎片严重的影响了查询的反应速度。你可以定期优化索引来减少碎片，减少索引大小，提高查询效率。</p>
<p>当文本从表中删除的时候，Oracle Text标记删除的文档，但是并不马上修改索引。因此，就的文档信息占据了不必要的空间，导致了查询额外的开销。你必须以FULL模式优化索引，从索引中删除无效的旧的信息。这个过程叫做垃圾处理。当你经常的对表文本数据进行更新，删除操作的时候，垃圾处理是很必要的。</p>
<p>exec   ctx_ddl.optimize_index (‘myidx’, ‘full’);</p>
<p>实施建议：每天在系统空闲的时候对全文索引进行相应的优化，以提高检索的效率</p>
<p> <strong>P.S.定时优化索引</strong></p>
<p>3.定时优化同步域索引</p>
<p>创建定时任务，定期优化和同步域索引</p>
<p>SQL&gt; create or replace procedure hsp_sync_index as</p>
<p>  2  begin<br>  3  ctx_ddl.sync_index(‘id_cont_msg’);  </p>
<p>0:00.08<br>S</p>
<p>  4  end;<br>  5  /  </p>
<p>Procedure created.  </p>
<p>Elapsed: 00:</p>
<p>0QL&gt; VARIABLE jobno number;<br>SQL&gt; BEGIN  </p>
<p>ex();’,<br>  3 SYSDATE, ‘SYSDATE + (1/24/4)’);  </p>
<p>  2 DBMS_JOB.SUBMIT(:jobno,’hsp_sync_in</p>
<p>d  4 commit;<br>  5 END;<br>  6 /  </p>
<p>PL/SQL procedure successfully completed.  </p>
<p>2  begin<br>  3  ctx_d</p>
<p>Elapsed: 00:00:00.27<br>SQL&gt; create or replace procedure hsp_optimize_index as  </p>
<p>dl.optimize_index(‘id_cont_msg’,’FULL’);<br>  4  end;<br>  5  /  </p>
<p>SQL&gt; VARIABLE jobno number;  </p>
<p>1’);  </p>
<p>SQL&gt; BEGIN<br>  2 DBMS_JOB.SUBMIT(:jobno,’hsp_optimize_index();’,<br>  3 SYSDATE, ‘SYSDATE</p>
<p>+ 4 commit;<br>  5 END;<br>  6 /<br>Procedure created.  </p>
<p>Elapsed: 00:00:00.03  </p>
<p>PL/SQL procedure successfully completed.  </p>
<p>Elapsed: 00:00:00.02  </p>
<p>SQL&gt;  </p>
<p> 890890890</p>

  </div>
</article>



        
          <div id="footer-post-container">
  <div id="footer-post">

    <div id="nav-footer" style="display: none">
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </div>

    <div id="toc-footer" style="display: none">
      
    </div>

    <div id="share-footer" style="display: none">
      <ul>
  <li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/" target="_blank" rel="noopener"><i class="fab fa-facebook fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://twitter.com/share?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&text=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-twitter fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-linkedin fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&is_video=false&description=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-pinterest fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="mailto:?subject=如何更好的使用Oracle全文索引-Tracy.-博客园&body=Check out this article: http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/"><i class="fas fa-envelope fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://getpocket.com/save?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-get-pocket fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://reddit.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-reddit fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-stumbleupon fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://digg.com/submit?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&title=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-digg fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="http://www.tumblr.com/share/link?url=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&name=如何更好的使用Oracle全文索引-Tracy.-博客园&description=" target="_blank" rel="noopener"><i class="fab fa-tumblr fa-lg" aria-hidden="true"></i></a></li>
  <li><a class="icon" href="https://news.ycombinator.com/submitlink?u=http://yoursite.com/2016/01/15/%E5%A6%82%E4%BD%95%E6%9B%B4%E5%A5%BD%E7%9A%84%E4%BD%BF%E7%94%A8Oracle%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95-Tracy.-%E5%8D%9A%E5%AE%A2%E5%9B%AD/&t=如何更好的使用Oracle全文索引-Tracy.-博客园" target="_blank" rel="noopener"><i class="fab fa-hacker-news fa-lg" aria-hidden="true"></i></a></li>
</ul>

    </div>

    <div id="actions-footer">
        <a id="menu" class="icon" href="#" onclick="$('#nav-footer').toggle();return false;"><i class="fas fa-bars fa-lg" aria-hidden="true"></i> Menu</a>
        <a id="toc" class="icon" href="#" onclick="$('#toc-footer').toggle();return false;"><i class="fas fa-list fa-lg" aria-hidden="true"></i> TOC</a>
        <a id="share" class="icon" href="#" onclick="$('#share-footer').toggle();return false;"><i class="fas fa-share-alt fa-lg" aria-hidden="true"></i> Share</a>
        <a id="top" style="display:none" class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up fa-lg" aria-hidden="true"></i> Top</a>
    </div>

  </div>
</div>

        
        <footer id="footer">
  <div class="footer-left">
    Copyright &copy; 2020 Tmoonlight
  </div>
  <div class="footer-right">
    <nav>
      <ul>
         
          <li><a href="/">Home</a></li>
         
          <li><a href="/about/">About</a></li>
         
          <li><a href="/archives/">Writing</a></li>
         
          <li><a href="/projects_url">Projects</a></li>
        
      </ul>
    </nav>
  </div>
</footer>

    </div>
    <!-- styles -->

<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">


<link rel="stylesheet" href="/lib/justified-gallery/css/justifiedGallery.min.css">


    <!-- jquery -->

<script src="/lib/jquery/jquery.min.js"></script>


<script src="/lib/justified-gallery/js/jquery.justifiedGallery.min.js"></script>

<!-- clipboard -->

  
<script src="/lib/clipboard/clipboard.min.js"></script>

  <script type="text/javascript">
  $(function() {
    // copy-btn HTML
    var btn = "<span class=\"btn-copy tooltipped tooltipped-sw\" aria-label=\"Copy to clipboard!\">";
    btn += '<i class="far fa-clone"></i>';
    btn += '</span>'; 
    // mount it!
    $(".highlight table").before(btn);
    var clip = new ClipboardJS('.btn-copy', {
      text: function(trigger) {
        return Array.from(trigger.nextElementSibling.querySelectorAll('.code')).reduce((str,it)=>str+it.innerText+'\n','')
      }
    });
    clip.on('success', function(e) {
      e.trigger.setAttribute('aria-label', "Copied!");
      e.clearSelection();
    })
  })
  </script>


<script src="/js/main.js"></script>

<!-- search -->

<!-- Google Analytics -->

<!-- Baidu Analytics -->

<!-- Disqus Comments -->


</body>
</html>
